/**
 * 
 */
package uk.ac.ebi.velvet.config;

import java.io.File;
import java.util.Collection;

import uk.ac.ebi.curtain.utils.file.FileInfo;
import uk.ac.ebi.velvet.model.ContigData;
import uk.ac.ebi.velvet.model.MapLocation;
import uk.ac.ebi.velvet.model.ReadData;

/**
 * @author mhaimel
 *
 */
public interface VelvetDataAccessService {

	public Integer getContigIdentifier(String id);
	
	public Integer addContigIdentifier(String id);
	
	public ContigData getContig(Integer id);

	public Integer getReadIdentifier(String id);
	
	public Integer addReadIdentifier(String id);
	
	public ReadData getRead(Integer id);

	public Iterable<MapLocation> getLocations();
	
	public void addLocation(MapLocation loc);

	public int getLocationSize();
	
	public int getContigSize();
	
	public int getReadSize();
	
	public FileInfo getFileForPosition(long pos);

	public VelvetArgs getVelvetArgs();

	public Collection<ContigData> getContigData();

	public long getGlobalFilePosition(File info);

	public Long translate2LocalPosition(long globalPosition);

}
